#!/usr/bin/perl

use strict;
use warnings;

use Test::More qw(no_plan);

my $pwd = `pwd`;
chomp($pwd);
my $testarbo = "$pwd/find-lang-root";


my %files = (
    # file => [ lang, is_%dir ]
    '/usr/share/man/fr' => [ 'fr', 1 ],
    '/usr/share/man/fr/man1' => [ 'fr', 1 ],
    '/usr/share/man/fr/man1/lang.1.*' => [ 'fr', 0 ],
    '/usr/share/locale/pt_BR' => [ 'pt_BR', 1 ],
    '/usr/share/gnome/help/lang/pt_BR' => [ 'pt_BR', 1 ],
    '/usr/share/gnome/help/lang/pt_BR/any.html' => [ 'pt_BR', 0 ],
    '/usr/share/gnome/help/lang/en_GB' => [ 'en_GB', 1 ],
    '/usr/share/gnome/help/lang/en_GB/any.html' => [ 'en_GB', 0 ],
    '/usr/share/gnome/help/lang' => [ '', 1 ],
    '/usr/share/locale/pt_BR/LC_MESSAGES' => [ 'pt_BR', 1 ],
    '/usr/share/locale/pt_BR/LC_MESSAGES/lang.mo' => [ 'pt_BR', 0 ],
);

system("/usr/bin/perl find-lang.pl $testarbo lang --with-man --with-gnome") and die "can't run find-lang $@";

open(my $h, '<', 'lang.lang') or die "can't open lang.lang";

while (my $line = <$h>) {
    chomp($line);
    $line =~ /svn/ and next;
    my ($file) = $line =~ / ([^ ]+)$/;
    my ($lang) = $line =~ /%lang\(([^\)]+)\)/;
    $lang ||= '';
    my $dir = $line =~ /%dir/;
    $dir ||= 0;
    print STDERR "$file\n";
    is($lang, $files{$file}[0], "lang is find");
    is($dir, $files{$file}[1], "%dir is properly set if need");
}

